﻿Imports ComponentFactory.Krypton.Toolkit
Imports System.Data.OleDb
Imports WiseLibraries.Net
Imports WiseLibraries.Strings

Public Class EnviarEmail
    Inherits KryptonForm

    Private rand As RandomKeyGenerator
    Private codigo As String = Nothing

    Sub New()

        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.

        gerarCodigo()

    End Sub

    Private Sub gerarCodigo()
        rand = New RandomKeyGenerator()
        rand.KeyChars = 4
        rand.KeyLetters = "abcdefghijklmnopqrstuvwxyz"
        rand.KeyNumbers = "0123456789"

        codigo = rand.Generate()
        lblCodigo.Text = codigo
    End Sub

    Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
        Dim u As New Usuario()
        If (New RegexValidator().validateEmail(txtEmail.Text)) Then
            u = u.buscarPorEmail(txtEmail.Text)
            If (u Is Nothing) Then
                KryptonMessageBox.Show("Email inexistente. Digite um outro email.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                gerarCodigo()
                txtEmail.Clear()
                txtEmail.Focus()
                Exit Sub
            End If
        Else
            KryptonMessageBox.Show("Email inválido. Digite o email novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            gerarCodigo()
            txtEmail.Clear()
            txtEmail.Focus()
            Exit Sub
        End If

        If (txtCodigo.Text.Equals(codigo)) Then
            If (u.Nome IsNot Nothing) Then
                Dim email As New EMail("wisealliance@hotmail.com", "javamasters", "smtp.live.com", 25)
                email.sendEmail("wisealliance@hotmail.com", txtEmail.Text, "Recuperação de senha do Wotan", "Seu usuário: " & u.Nome & vbNewLine & "Sua senha: " & u.Senha)
                KryptonMessageBox.Show("Informações enviadas. Verifique a caixa de entrada do seu email.", "Email enviado", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Me.Dispose()
            End If
        Else
            KryptonMessageBox.Show("Código inválido. Digite o código novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            gerarCodigo()
            txtCodigo.Clear()
            txtCodigo.Focus()
        End If

        If Not (New ConnectionVerifier().verifyConnectionByLoadingPage("http://www.google.com.br")) Then
            KryptonMessageBox.Show("Não foi possível enviar as informações pois você não possui uma conexão com a internet." & vbNewLine & "Verifique sua conexão e tente novamente.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            gerarCodigo()
            Exit Sub
        End If

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Me.Dispose()
    End Sub
End Class